The present invention relates generally to semiconductor integrated circuit (IC) memory chips or devices, and more particularly to erasable programmable memory devices such as electrically erasable (alterable) programmable read only memories (EEPROMs) which are adapted to prevent a secure programmed condition from being violated by reprogramming or other means.
Erasable programmable memory devices such as EEPROMs may be provided with various configurable options that allow the user to selectively configure the device according to the user or its customers' needs. For example, the internal memory of the device may be composed of contiguous blocks or banks, and the user may desire to maintain security for some or all of the memory blocks. One type of security would be to "write protect" certain ones of the blocks to prevent the data stored in those blocks from being erased and written over. A scheme for doing so is described in detail in copending U.S. patent application Ser. No. 08/041,068, filed on the same date and assigned to the same assignee as this application, and incorporated herein by reference. According to the invention described in that application, configurable fuses are selectively "blown" (i.e., programmed) to prevent access to the write protected portion of the memory after desired "permanent" data has been written to that portion.
Although reference is made here to the "blowing" of fuses, it will be understood that the fuses typically would not be metal strips, but programmable components such as EEPROM cells having erased/written states that correspond to an unblown/blown fuse, or other fusible means adapted to be reparable (i.e., reversed from, for example, a "blown" or set state to a cleared state).
Another type of configurable option for the memory device might be a programmable endurance scheme for imbuing selective high endurance characteristics to any portion of the otherwise relatively low endurance memory. A programmable high endurance block technique is described in detail in copending U.S. patent application Ser. No. 08/041,642, filed on the same date and assigned to the same assignee as this application, and incorporated herein by reference.
According to the invention described in that application, a selectable redundant block of memory of smaller capacity than the maximum memory capacity of the data memory of an EEPROM array is provided to give the array a programmable high endurance capability. The redundant block is placed in parallel with a selected (programmed) regular block of the data memory of the same capacity. Thus, both of those blocks are written to, read, erased or rewritten to together, so that they hold (and have removed from them) the same data as these functions are performed. The selected block thereby effectively becomes a high endurance block, because of the very remote probability that identical memory cells in the two blocks will fail within a number of erase/write cycles that constitute high endurance.
A high endurance register/pointer defines the block of memory to be rendered high endurance, while two security register/pointers are used to set the write protection of other memory blocks. The latter two pointers define the starting block and the number of blocks of memory to be rendered secure, respectively. It is axiomatic that the high endurance block will not be write protected because the intention is to write to and erase that block many times over, perhaps tens of thousands of times during the lifetime of the device. An example of this is the "last number redial" function for a telephone.
After the pointers associated with these configurable options have been set (programmed), one or more configuration fuses (e.g., a set of fuses) associated with each register are "blown", effectively opening the respective circuit path. Additionally, a separate lockout fuse is automatically "blown" after (or at the time) all of the configuration fuses have been set, thereby eliminating any further capability of programming them so that they cannot be altered thereafter. This provides security against reversing the state of one or more of the configuration fuses to allow access to change the configurable options or to alter the otherwise secure contents of the memory.
A problem arises in that if the configuration fuses are inadvertently programmed at the factory to states that lock the EEPROM device in a non-standard configuration, such as with one or more data memory blocks in a write protected condition, the device is rendered unusable to the customer. That is, if a substantial portion of the EEPROM memory contains blank data which has been write protected at the factory when the device is received by the original equipment manufacturer (OEM), the device is not usable as an EEPROM, but only as a ROM. Another example of the EEPROM being locked in a non-standard configuration is where the organization of the memory may be either X8 or X16 and the fuse by which the OEM-specified organization is determined has been improperly set at the factory.
The problem is compounded in that the operation of the fuses cannot be tested at the device manufacturer's factory by writing to them, because doing so also writes to ("blows") the lockout fuse, which then prevents the configuration fuses from being erased or otherwise verified as to their present state at the factory before shipment to the customer.
Accordingly, it is a principal object of the present invention to provide apparatus and methods for assuring, prior to shipment from the factory, that programmable configuration fuses of a semiconductor device having one or more configurable options are programmed to states that will allow the device to be used as desired by the customer.
Another important object of the invention is to permit an EEPROM device having fusible configurations that, once set, will be locked by the state of another fuse against subsequent change, to be subjected to testing of the fuses and the various configurations at the factory and yet assure that the device as shipped to the customer is not rendered unusable by an inadvertent locked status of the configuration fuses.
Another broader object is to provide improvements in testing EEPROMs.